tmelliott
@tomelliottnz
iNZightVIT
@iNZightUoA
Data
GUI
Explore
Save script
Another child of the University of Auckland
gWidgets2 + gWidgets2RGtk2† RGtk2‡ GTK
† John Verzani ‡ Michael Lawrence
Started off small …
… et voilà: a rewrite was needed!
LoadDataWindow <- setRefClass("LoadDataWindow",
fields = list(
filename = "character"
),
methods = list(
initialize = function(...) {
w <- gwindow("Load data")
g <- ggroup(horizontal = FALSE, container = w)
# Get filename from user
fileedit <- gedit(container = g)
# Load data
loadbtn <- gbutton("Load", container = g)
addHandlerKeystroke(fileedit,
handler = function(h, ...) {
filename <<- svalue(h$obj)
}
)
addHandlerClicked(loadbtn, function(h, ...) loadData())
},
loadData = function() {
data <- read.csv(filename)
}
)
)LoadDataWindow <- setRefClass("LoadDataWindow",
fields = list(
filename = "character",
filetype = "character",
delimiter = "character", # csv can use , or ;
...
),
methods = list(
initialize = function(...),
loadData = function() {
if (filetype == "csv") {
data <- read.csv(filename, delimiter = delimiter, ...)
} else if (filetype == "excel") {
data <- readxl::read_xls(filename, ...)
} else ...
}
)
)LoadDataWindow <- setRefClass("LoadDataWindow",
fields = list(
filename = "character",
filetype = "character",
delimiter = "character", # csv can use , or ;
...
),
methods = list(
initialize(...),
loadData = function() {
data <- iNZightTools::smart_read(filename,
filetype = filetype,
delim = delimiter,
...
)
}
)
)Demo <- setRefClass("Demo",
field = list(
data = "data.frame",
colour = "character"
),
methods = list(
initialize = function() {
w <- gwindow("Demo")
g <- ggroup(horizontal = FALSE, container = w)
col <- gcombobox(
c("Orangered", "Goldenrod", "Steelblue"),
container = g,
handler = function(h, ...) {
colour <<- svalue(h$obj)
draw()
}
)
data <<- data.frame(x = rnorm(100), y = rnorm(100))
colour <<- "Orangered"
draw()
},
draw = function() {
plot(y ~ x,
data = data,
col = colour
)
}
)
)tmelliott
@tomelliottnz
iNZightVIT
@iNZightUoA